package com.fuchuang.seckillsystem.mapper;

import com.fuchuang.seckillsystem.dto.GoodsQuery;
import com.fuchuang.seckillsystem.entity.Goods;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
@Mapper
public interface GoodsMapper {
    
    int insertSelective(Goods goods);
    
    Goods selectByPrimaryKey(@Param("id") Integer id);
    
    int updateByPrimaryKeySelective(Goods goods);
    
    /**
     * 查询所有的商品信息
     *
     * @param goodsQuery 查询分页条件
     * @return 商品信息
     */
    List<Goods> selectAllGoods(GoodsQuery goodsQuery);
    
    /**
     * 获取秒杀活动的商品
     *
     * @param activityId 秒杀活动
     * @return 商品信息
     */
    List<Goods> queryGoodsByActivityId(@Param("activityId") Integer activityId);
    
    /**
     * 递减库存
     *
     * @param goodsId 商品id
     */
    Integer decreaseStock(@Param("goodsId") Integer goodsId);
    
    /**
     * 递增库存
     *
     * @param goodsId 商品id
     */
    Integer increaseStock(@Param("goodsId") Integer goodsId);
}